Logic tree comprising nor or nand logic blocks



J. EARLE 3,226,565

LOGIC TREE COMPRISING NOR OR NAND LOGIC BLOCKS Dec. 28, 1965 Filed March 28. 1961 FIG. 4

INVENTOR JOHN EARLE CAM/(C1 WEI fin ATTORNEY 1 BANK 1 United States Patent 3,226,565 LOGIC TREE COMBRISING NOR OR NAND LOGIC BLOCKS John Earle, Wappingers Falls, N.Y., assignor to International Business Machines Corporation, New York, N.Y.,

a corporation of New York Filed Mar. 28, 1961, Ser. No. 98309 3 Claims. (Cl. 307-885) This invention relates to logical circuits, and more particularly to a logical circuit, made up of stroke-type blocks, which is the functional equivalent of the relay tree.

The stroke-type block includes the Sheffer stroke function (AND inverter) as well as its dual, the Pierce function (OR inverter). These circuits might also be characterized as NAND and NOR blocks.

The logical tree is a complete decoder generally in minimal form for relays and certain other circuit elements. Logical design techniques built around the tree have become well known and are discussed in such texts as Caldwell, Switching Circuits and Logical Design, Wiley and Sons, 1958. The essence of logical design utilizing the tree is the reduction of the desired switching function to a standard statement such as sum of products and the deletion of those elements of the tree which are unnecessary to the production of those terms. The relay tree has several levels, with the number of switching elements in any given level being twice the number of switching elements in the previous level, so that the triangle of tree configuration is achieved. The output of each switching element in the final level, or lower branch level of the tree, is a complete term in the standard sum of products. For example, in a three-variable tree, where the variables are designated A, B and C, the final level output of the array of switching circuits is, for each such switching circuit, one term of the standard sum of products;

ABC-l-ABO-l-ABC+ATT+KBC+KBO+EC+ABO This sum or products statement depends upon the rules of notation of Boolean algebra:

(1) Variables are designated A, B and C, etc.

(2) The complement of A is not A, written K; the complement of B is not B, written B; etc.

(3) The logical AND (product or coincidence) of two variables, such as A and B, is indicated by proximity, the multiply dot, or the quantity multiply parentheses. These statements are all A and B2 AB A-B (A) (B) Complex statements follow the same pattern.

(ABC)(M-N) is read The quantity A and B and C and the quantity and N.

(4) The logical OR (sum) of variables such as A, and such as B, is indicated by a sign.

(5 An entire term such as ABC can be complemented, as shown by a term-size bar ABC. A multi-term expression can be complemented. Complements of entire expressions foll certain rules, often referred to as De Morgans theorem. The complement of a sum of products is a product of sums; the product of sums for the relay tree is as follows:

De Morgans theorem for complementing a Boolean expression is as follows:

To complement a Boolean expression, change each logical and sign to or and each or sign to and, and complement each variable.

For more complete analysis of Boolean algebra see Caldwell, Switching Circuits and Logical Design, Wiley and Sons, 1958, and Richards, Arithmetic Operations in Digital Computers, Van Nostrand, 1955.

It has become common practice to develop logical expressions and then to conform a relay tree to the logic by lopping ofi unnecessary branches. Techniques of deleting switching elements which form branches unnecessary to the desired logical terms are defined and discussed in detail by Caldwell.

The logical power of the stroke-type block has recently become very well known. Stroke-type block is a generic term for the family of AND inverters and OR inverters. The duality of the AND inverter and the OR inverter has been pointed up in such publications as Kellett, The Elliot-Shelter Stroke Static Switching System, Electronic Engineering, September 1960, pages 534- 539. For simplicity and ease in understanding, the invention is illustrated and described in terms of, but not limited to, the AND-inverter stroke-type block. In the AND inverter stroke-type block, inputs A, B and C produce output product term ABC, which is the same as output sum term K+B+Ti The utilization of this power has generally been in special-purpose logical circuits. Because of the inversion inherent in each stroke-type block, it has not been thought practical to use the stroke-type block in a tree configuiration because the AND circuit cannot generally feed other identical AND circuits. Accordingly, logical designers have generally bypassed the tree configuration when using stroke-type blocks. It is the object of this invention to provide a logical equivalent of a tree circuit made up entirely of stroke-type blocks.

A feature of the invention is the presentation of a group of stroke-type blocks according to the following algorithm, where n is the number of input variables and x is any particular bank of stroke-type block, banks 0 to n:

(a) Each bank x (except bank n) receives as inputs to respective stroke-type blocks specific sets of all possible sets of combinations of (nx) input variables;

(b) Each stroke-type block which receives a set of inputs specified above in clause (a) also receives as inputs the outputs from all previous bank stroke-type blocks which have input sets including the same input variables;

(c) Bank n stroke-type block receives as inputs the outputs from each stroke-type block in each previous bank of stroke-type blocks;

(d) The number C, of stroke-type blocks in any given bank x for an n-input tree is a factorial function of n and x as follows:

F, (fi h An advantage of the invention is the utilization of a single standard circuit block, the stroke-type block (AND inverter or OR inverter) from which the entire logical tree is built.

Another advantage of the invention is the advantage 3 to be expected from a tree circuit-those circuit elements which generate terms of the standard sum of products which are unnecessary to the desired logic can be eliminated. v

Another object isrninimization 'of' tree-type circuits.

An advantage of the invention is the "possibility of eliminating stroke-type circuits, particularly those used as inverters, by bundling of several connecting wires as logical inputs to a receiving stroke'block. Connecting wires in prior art normally apply signals 'to a logical AND stroke-type block, producing the complement of a signal required. The re uired signal is then generated by an inverter "stroke-type block'to 'vvhichthe AND stroke-type block is connected. .Both the logical AN'D'stroke type block and the inverter strokeuype block are eliminated by bundling -the connecting Wires'tdirectlyto the receiving stroke-type block.

Since it is the general rule in producing large logical machines to subdivide effort by sections "of machines, bundling techniques 'd'ic'l'not early become apparent. 'It wasdesired 'to label each sectionoutp'ut connecting'wire with a'de'sig'nation ofa specific'logical function for the wire. 'Ea'chfunction'had'its own wire. 'The problem of designation was solved by logical combination of signals onto the wire. A better solutionistodrawconnecting wires together as abundleand labelthe bundle.

A concurrent object 'of'thefinvention is to define logic so that bundling techniques "can eliminate stroke-type blocks. v

The foregoing andother objects, features and advantages of the invention will bea'pparenffrom the following of a 'partial' circuit intended to "illustrate bundling.

SUMMARY The inversion characteristics of the logical AND-inverter circuit -(st'roke-type block) necessitate a special type of diamond "configuration to form the logical equivalent of the relaytree. For n variables there are required logical banks -11 :of stroke-type blocks, each bank but.

bank'O and bank nhaving a plurality of stroke-type blocks.

Inputs to" the bank 0 stroke-type block areeach 'of the input variables. Inputs to bank I of stroke-type blocks are the output of the bank O'stroke-type b'lock'and all possible combinations of one-less than all input variables to the respective stroke-type blocks. Each stroke-type block in any bank (x) is provided ce'rtaininputs froni'each of the preceding bank outputs and all possible combinations of (n x) input variables. The bank n stroke-type block is provided an input'from each of'the circuitsin the preceding banks. The'output of each stroke-type block in the entire configuration is one term of the "standard sum j of products.

Figure 1.T-w0-variable tree 1 A B 2 In m g 4 TIT;

4 Combinations of outputs from two or more nodes wired as a bundle to a receiving block (not shown) indicate the following functions:

(1,4) K+AB (Exclusive OR) (2,3) AE-FA-B (Exclusive OR) the function AB. The output of bank 0 stroke-type block '11is connected as input to each of the other stroke-type blocks in the circuit. Stroke-type blo ck 12 thus has inputs A and AB; the resultant signal AF appears at node (2). Stroke-type -block 13 has inputs A and B, producing at output node (3) the signal Stroke-type block '14 has the following'logical inputs:

The output of stroke-type block 4 thus is (E) (EH25 "the output of stroke-typeblock 14 is thus E. The XE 'signal'appears at 'node' (4).

Combinationsof the signals available at output nodes,

taken-as bundles, provide various combinatorial func- 'tions. 'as'a bundle with the output at node v(3), the bundle is For example, by taking the output at node (2) significant'as the function (A Exclusive OR B) when provided as input to a'receiving stroke-type block or other logical AND circuit.

FIGURE 2.-Stroke-type block details For a four input stroke-type block, a PNPtransistor Z0 is biased for normal conduction by a power source and resistance value's. Four input resistors 21-24 in parallelform "a bias voltage divider with 'a bias resistor 25. Voltage division holds the base of. the transistor negative so long as any of the inputs i negative. The nature of the inputsignals is shown adjacent to the input terminals of stroke-type block 28. The negative base causes conduction by thetransis'tor, providing a positive output at a tap 26 on the collector side of an output resistor- 27. This is the AND-inverter function.

'With'all four-inputs 21-24 positive, voltage division holds the base at a positive level, cutting ofi transistor 20. Cutoff 'of transistor 20 provides a negative output at the collector side tap 26 of the output resistor 27. The

stroke-type block is shown schematically as a triangle 28.

An eight-input stroke-type block may be produced by tapping a second transistor to share load resistor 27 with the first transistor. 20. The-collector tap of the second transistor is connected to tap 29 of transistor 20. The second transistor has input resistors analogous to 21-24 and a bias resistor analogous to 25. The eight-input stroke-type block maybe shown schematically as two adjacent vertically-aligned triangles with dotted lines indicating the common collector relationship. See FIG- URE 3, infra, blocks 38v and 39, which function together as an'eight inputstroke-typev block (seven inputs used).

FIGURE 3 .---Three-variable tree Stroke-type blocks 31-38 provide outputs at respective nodes (D-(8). The transistor represented by triangle 39 is tapped common collector with the transistor of stroke-type block 38 to extend the stroke-type function to eight (7 used) inputs. The capitalletters A, B, C are used to denote the variables-wherever the input terminals of any two or more stroke-type blocks are denoted v by the same capital letter, it means that those blocks receive the same signal representing that particular variable. The outputs at the nodes are:

(1) 559 (7) KEG (2 o 5 Ken 8 Inc A30 (6) ABC As in the two-variable tree, combinations of outputs from two or more nodes, or from an input variable and one or more nodes, when connected as a bundle to a receiving stroke-type block, indicate complex functions.

For example, the bundle (3) (4) (5) indicates the following complex function:

duces output ABC at node (1).

In bank 1, block 32 receives inputs A, B and ABC to KBC, ABC and ABC to produce XBC at node (7).

In bank 3, block 33 receives as direct inputs the positive outputs from nodes (5), (6) and (7), ABC, ABC and XBC. Its transistor is cut off only when all of the three input signals appear. Block 39 is common collector connected to block 38, and receives as inputs the outputs from'nodes (2), (3), (4) and (1), ABC, ABC, ABC and ABC. Its transistor is cut off only when all of the four input signals appear. Both transistors are simultaneously cut ofi only when all seven node signals appear; block 38 output ABC, at. node (8) thus is the catch-all, the complement of all other outputs taken as a group.

ALGORITHM An algorithm is a statement of definitions for a system of logical calculation, or the system itself. The stroke type block tree functions according to the following algorithm, where n is the number of input variables and x is any particular bank of stroke-type block banks 0 to n:

(a) Each bank x (except bank 11) receives as inputs, to respective stroke-type blocks, specific sets of all possible sets of combinations of (nx) input variables;

(b) Each stroketype block which receives a set of inputs specified above in clause (a) also receives as inputs the outputs from all previous bank stroke-type blocks which have input sets including the same input variables;

(c) Bank n stroke-type block receives as inputs the outputs from each stroke-type block in each previous bank of stroke-type blocks;

(d) The number C of stroke-type blocks in any given bank x for an n-input tree is a factorial function of n and x as follows:

(e) And the total number of stroke-type blocks in a complete tree is as follows:

i X=I1 Sum x=0 The algorithm for the tree involves factorial functions of n (the number of input variables) and x (the number assigned to any chosen bank of banks 0-n of stroke-type blocks). The factorial of a given number (X) is generally written X! and stated in words X factorial. The X! value is a composite product of X times (X-lY) times (X2Y) times (X-3Y) until the term (XzY) is equal to 0. The final term X zY, for multiplying purposes, is treated as the digit 1. The term Y is generally 1. The value of X! generally is X(X1)(X2)(X3)(X4) (X[z--1l)(1) Some common factorial values are:

0!: 1(Arbitrary) The circuit illustrated in FIGURE 1 is a two-variable tree, where n=2. It fulfills the algorithm as follows:

Bank 0 Bank 0 receives as inputs all possible sets of combinations of (nx) input variables. Since (nx)=(20)=2, and there is only one combination, A and B, of the two input variables A and B, clause (a) is fulfilled.

Bank 0 receives as inputs the outputs of all previous bank stroke-type blocks which have input sets including the same input variables, as specified by lause (b). There are no previous banks, hence no inputs other than variables A and B.

Bank 0 contains one stroke-type block, block 11. The number Clause (d) is thus fulfilled.

Bank 1 Stroke-type block 12 receives as input set A of all possible sets of combinations of (n-x) input variables. Stroke-type block 13 receives as input set B. Since n=2 and x=1, (nx)'=1; there are possible only two sets, (A) and (B), of one input variable for two inputs A and B. Clause (a) is fulfilled.

Block 12 also receives as input the output of block 11, which includes as input the variable A. Block 13 also receives as input the output of block 11, which includes as input the variable B. Clause (b) is thus fulfilled.

The number C of stroke-type blocks is as follows:

Clause (d) is thus fulfilled.

Bank 2 (Bank n) x=2 Bank 2 stroke-type block 14 receives as inputs the outputs from each stroke-type block in each previous bank of stroke-type blocks, i.e., the outputs of blocks 11, 12 and 13. Clause (c) is thus fulfilled.

The number C of stroke-type blocks in bank 2 is:

Clause ((1) is thus fulfilled.

TOTAL NUMBER OF STROKE-TYPE BLOCKS Clause (e) is thus fulfilled. The circuit illustrated in FIGURE 3 fulfills the algorithm in all particulars. A spot check on block 36 The total number of stroke blocks is eight.

'3 7 Bank 2 3 1) Bank 1 Bank 3 In a six-variable tree, for example, the stroke-type block count (2) is 64 (2 Bank -is a six-input stroketype block and bank 6 is a 63-input stroke-type block. The number of stroke-type blocks in the various banks are:

Actual component counts will be greater whenever the fan-in inputs are limited. For example, 'a six-input stroketype block may take two transistors; a 63-input stroke block may require up to thirty transistors.

The bank -n stroke-type block always has a relatively great number of inputs, and therefore is costly. Wherever possible, it is to be eliminated along with its functions.

FIG URE 4 Bundling The-figure-showsfirst, second, third and fourth stroketype blocks 41-44 and output taps 4549' in a composite of prior art and. bundling circuit connections. ,Conneoting wire bundle'fitl and bundle terminal 51 also appear. Input-s m, n and Q are available. Inputs m and n to (AND INVERTER) stroke-type block 41result in signal P at the output of stroke-type block41 and at tap 45. Since the term B is required as input to receivingstroketype block 44, inverter stroke-type block 43 is added to produce B, which is then available at tap 45. .With the Q input connected, AND INVERTER stroke-type block 44 output 'at tap 47 is FQ, or (.P+t

The third stroke-type block 43is eliminated by. bundling techniques. The second stroke-type block 42 replaces both'the third and fourth blocks. Inputs m and n form bundle 5G with significance F. Bundle terminal 48 makes '1 available at twin taps. With the F bundle and Q connected as inputs; receiving block 42 produces output signal FQ, or (P-l-Q) at terminal 49. The term PG is available at bundle terminal 51. Since the AND relationship prevails on the bundle, (P+'Q)Q=PQ. The connecting wires in a bundle remain mutually insulated at all times; their relationship is logical only.

Where the signal P is not needed, even stroke block 41 can be eliminated.

EXAMPLE OF'BUNDLING TREE OUTPUTS The tree outputs bundle similarly. Output nodes (1) and (4) of the two-variable tree in FIGURE 1 are significant as (AB) (KB) when bundled. to a receiving stroketype block. By connecting FIGURE 1 nodes (1) and (4) to input resistances 21 and 24 in FIGURE 2 transistor; becomes subject to coincidence of signals (AB) and (A l") Stroke-type block 28fun'ctions as an AND inverter for the positive signals 'AB and KB, producing i negatifi output during coincidence. Coincidence of AB and KB occurs in signals AB and KB, or AV B.

Additional inputs to stroke-type block 28 might be an in c ion con rol inputsu h as encode E and a timin 8 input T. Output of block 28 inputs E, T and bundle AB is ET(Av B).

The limit to the size of the bundle is the fan-in limitation of the receiving logical block.

Rsum.F I G URE 3 This invention is a circuit made up of stroke-type blocks (the family of AND-inverters and OR-inverters) which is the functional equivalent of the relay tree.

For 12(3) variables there are required'logical banks 0, 1 n(3) of stroke-type blocks 31-39-banks O and 3 contain one stroke-type block while banks 1 and 2 contain three stroke-type blocks each.

Inputs to the bank 0 stroke-type block 31 are each of the input variables A, B and C. Inputs to respective bank 1 stroke-type blocks 32, 33 and 34 are the output of bank 0 stroke-type block '31 and all possible combinations of (rt-l) input variables, AB, AC and BC. Inputs to the respective bank 2 stroke-type blocks 35,36 and37 are (n2) combinations A, B and C, and for each block 35,36 and 37, the outputs of all previous blocks having the same input variable. Block 35,. for example, has input variable B. Its other inputs are from those previous blocks which have a'B input, blocks 31, 32 and 34. The bank n stroke-type block 38 =(ex'tended for additional output by block 39) has as inputs the outputs vof all previous blocks. 7

The output of each stroke-type block 31-38, available 'at respective nodes (1)-(8), isthe respective term ofthe tollowing'standard sum of products 1 (1) ABC (4) KBC (7) EC (2) ABC (5) X136 (8.) ABC, (3) ABC (6) ABC While the invention has been :particularly shown and described with reference to preferred embodiments thereof, it will be understood by those skilled in the art that the foregoing and other changes in form and details may be made. therein Without departing from the spirit and scope of the invention.

What'is claimed is:

1. A. stroke-type function tree "for 11 input variables comprising n+1 banks of sinrilar stroke-type blocks sequentially ranked ()n, with interconnections according to the following algorithm: 7 a

(a) Each bank x (except bank n) receives as inputs,

to respective stroke-type blocks, specific sets of all possible sets of combinations of (nx) input'variables; (h) each stroke-type block which receives a set of inputs specified above in clause (a) also receiveslas inputs the outputs from all previous bank stroketype blocks which have input sets including the same input variables; 7 (c) bank 12 stroke-type blocks receives as inputs the outputs from each stroke-type block of eachprevious bank of stroke-type blocks; V

(d) the number C ofv stroke-type blocks in anyQgiven bank x for an n-input tree is a factorial,,function of n and x as follows:

(e) and the total number of stroke-type" blocks "in'a complete tree is as follows:

2. A strokestype function tree, according to claim 1 wherein each of said stroke-type blocks is a NAND block.

3. A stroke-type function tree according to claim 1 Whcrein each of said stroke-type blocks is a NOR block.

References Cited by the Examiner UNITED STATES PATENTS 3,094,614 6/1963 Boyle 30788.5X

OTHER REFERENCES Hurley, Transistor Logic Circuits, Wiley and Sons, 5 1961, pp. 31 to 32, 128.

Kellett, The Elliott Shelfer Stroke Switching System,

Nicolantonio 30788.5

Di Lorenzo 3O7 885 Electromc Engmeerrng, September 1900, pp. 534-639.

Dunham 30788.S I

Maley 307 88-5 X 10 ARTHUR GAUSS, P/zmaly Examiner.

Boyle 30788,5 ERMAN K. SAALBACH, Examiner. 

1. A STROKE-TYPE FUNCTION TREE FOR N INPUT VARIABLES COMPRISING N+1 BANKS OF SIMILAR STROKE-TYPE BLOCKS SEQUENTIALLY RANKED O-N, WITH INTERCONNECTIONS ACCORDING TO THE FOLLOWING ALGORITHM: (A) EACH BANK X (EXCEPT BANK N) RECEIVES AS INPUTS, TO RESPECTIVE STROKE-TYPE BLOCKS, SPECIFIC SETS OF ALL POSSIBLE SETS OF COMBINATIONS OF (N-X) INPUT VARIABLES; (B) EACH STROKE-TYPE BLOCK WHICH RECEIVES A SET OF INPUTS SPECIFIED ABOVE IN CLAUSE (A) ALSO RECEIVES AS INPUTS THE OUTPUTS FROM ALL PREVIOUS BANK STROKETYPE BLOCKS WHICH HAVE INPUT SETS INCLUDING THE SAME INPUT VARIABLES; (C) BANK N STROKE-TYPE BLOCKS RECEIVES AS INPUTS THE OUTPUTS FROM EACH STROKE-TYPE BLOCK OF EACH PREVIOUS BANK OF STOKE-TYPE BLOCKS; (D) THE NUMBER CXN OF STROKE-TYPE BLOCKS IN ANY GIVEN BANK X FOR AN N-INPUT TREE IS A FACTORIAL FUNCTION OF N AND X AS FOLLOWS: 